Pushing identity information

ABSTRACT

A system allows a user to send alias information or receive alias information during a communication between two communication devices. Alias information is identity information for a user that identifies the user on a social media site or network (e.g., Facebook, Twitter, LinkedIn, etc.). The alias information can be stored in a contacts program or other data store. During a web-based telephone call between two IP-enabled phones, the alias information may be retrieved. The alias information can then be sent to the other IP-enabled phone or to another device associated with the calling party. In response to receiving the alias information, the calling party can automatically retrieve information associated with the called party and the alias from one or more social media sites.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of and priority under 35 U.S.C.§119(e) to U.S. Patent Application No. 61/235,838, filed Aug. 21, 2009,entitled “MOJO,” which is incorporated herein by reference in itsentirety.

BACKGROUND

Many people get information from or provide information to social media.Social medial include an ever increasing collection of blogs, microblogs (e.g., Twitter), social media sites (e.g., Facebook or MySpace),video blogs, or other social media networks and/or sites. A user may beidentified in each social media network or site by a different “handle”or alias. It is often not possible to gather information about a personfrom the various social media networks or sites because the alias forthe social network or site is not known. Thus, creating a profile for auser from information on the social networks or sites is not possible.

SUMMARY

The embodiments presented herein allow a user to send alias informationor receive alias information during a communication. For example, aliasinformation can be stored in a contacts program or other data store.During a web-based telephone call, the alias information may beretrieved. The alias information can then be sent to the othercommunication device or to another device associated with the callingparty. In response to receiving the alias information, the calling partycan automatically retrieve information from one or more sources, forexample, social media sites, local or distant storage, a local emailsystem, etc.

In embodiments, the system conducts a communication between at least twoparties or users. During or before the communication, a first user maypush alias information to a second user. In other embodiments, the aliasinformation is pulled or requested and received. The alias informationincludes the identity information for the first user associated with oneor more social network sites. For example, if the first user uses thealias “BigPapi” on Twitter, the “BigPapi” alias is pushed to the seconduser.

With the alias information, the second user or a system or applicationassociated with the second user can interact with the one or more socialnetwork sites to extract information from those social network sites.For example, the number of postings, the content of postings,biographical information, etc. may be gleaned from the social networksites.

In further embodiments, the first user may be able to select how aliasinformation is passed to another user. For example, the first user maybe able to set preferences for how alias information is shared. Onegroup or individual may receive a predetermined set of aliasinformation, while a second group or individual may receive a differentpredetermined set of alias information. The preferences can delineatebetween business and personal aliases, internal company and externalcompany alias information, etc.

What alias information is passed or what information is taken from thesocial network site may also be determined by the activity or content.For example, if a post on a social media site relates to a skiingvacation, the content of that post may not be sent to or retrieved by abusiness user. As such, information about a person can be gathered andused to facilitate more directed communications.

The phrases “at least one”, “one or more”, and “and/or” are open-endedexpressions that are both conjunctive and disjunctive in operation. Forexample, each of the expressions “at least one of A, B and C”, “at leastone of A, B, or C”, “one or more of A, B, and C”, “one or more of A, B,or C” and “A, B, and/or C” means A alone, B alone, C alone, A and Btogether, A and C together, B and C together, or A, B and C together.

The term “in communication with” as used herein refers to any coupling,connection, or interaction using electrical signals to exchangeinformation or data, using any system, hardware, software, protocol, orformat.

The term “a” or “an” entity refers to one or more of that entity. Assuch, the terms “a” (or “an”), “one or more” and “at least one” can beused interchangeably herein. It is also to be noted that the terms“comprising”, “including”, and “having” can be used interchangeably.

The term “automatic” and variations thereof, as used herein, refers toany process or operation done without material human input when theprocess or operation is performed. However, a process or operation canbe automatic, even though performance of the process or operation usesmaterial or immaterial human input, if the input is received beforeperformance of the process or operation. Human input is deemed to bematerial if such input influences how the process or operation will beperformed. Human input that consents to the performance of the processor operation is not deemed to be “material”.

The term “computer-readable medium” as used herein refers to anytangible storage that participates in providing instructions to aprocessor for execution. Such a medium may take many forms, includingbut not limited to, non-volatile media, volatile media, and transmissionmedia. Non-volatile media includes, for example, NVRAM, or magnetic oroptical disks. Volatile media includes dynamic memory, such as mainmemory. Common forms of computer-readable media include, for example, afloppy disk, a flexible disk, hard disk, magnetic tape, or any othermagnetic medium, magneto-optical medium, a CD-ROM, any other opticalmedium, punch cards, paper tape, any other physical medium with patternsof holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, a solid state mediumlike a memory card, any other memory chip or cartridge, or any othermedium from which a computer can read. When the computer-readable mediais configured as a database, it is to be understood that the databasemay be any type of database, such as relational, hierarchical,object-oriented, and/or the like. Accordingly, the embodiments areconsidered to include a tangible storage medium and prior art-recognizedequivalents and successor media, in which the software implementationsare stored.

The terms “determine”, “calculate” and “compute,” and variationsthereof, as used herein, are used interchangeably and include any typeof methodology, process, mathematical operation or technique.

The term “module” as used herein refers to any known or later developedhardware, software, firmware, artificial intelligence, fuzzy logic, orcombination of hardware and software that is capable of performing thefunctionality associated with that element. Also, while the embodimentsis described in terms of examples, it should be appreciated thatindividual aspects of the embodiments can be separately claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is described in conjunction with the appendedfigures:

FIG. 1 is a block diagram of an embodiment of a system for the pushingidentity information;

FIG. 2 is a block diagram of an embodiment of a computer system operableto push and receive identity information;

FIG. 3 are embodiments of data structures operable to push identityinformation;

FIG. 4 is a flow diagram of an embodiment of a process for receivingidentity information;

FIG. 5 is another flow diagram of an embodiment of a process for pushingidentity information;

FIG. 6 is a block diagram of an embodiment of a computing environmentoperable to execute the embodiments described herein;

FIG. 7 is a block diagram of an embodiment of a computer or computingsystem environment operable to execute as the one or more devicesdescribed herein.

In the appended figures, similar components and/or features may have thesame reference label. Further, various components of the same type maybe distinguished by following the reference label by a letter thatdistinguishes among the similar components. If only the first referencelabel is used in the specification, the description is applicable to anyone of the similar components having the same first reference labelirrespective of the second reference label.

DETAILED DESCRIPTION

The ensuing description provides embodiments only, and is not intendedto limit the scope, applicability, or configuration of the claims.Rather, the ensuing description will provide those skilled in the artwith an enabling description for implementing the embodiments. It beingunderstood that various changes may be made in the function andarrangement of elements without departing from the spirit and scope ofthe appended claims.

An embodiment of a system 100 for pushing identity information is shownon FIG. 1. The system 100 can include at least one device 102 or 116(e.g. computer 102 or computer 116) and one or more communicationdevices 104 or 112 that may interact with the computer 102 or 116. Thecommunication device 104 or 112 can be an Internet-protocol-enabledtelephone (IP-enabled phone) 104. The IP-enabled phone shall be used asan example of the communication device 104 hereinafter for ease ofdescription. However, the embodiments are not enabled to using only anIP-enabled phone. The one or more devices 104 or 116 that interact withthe computer 102 or 116 may communicate either directly with thecomputer 102 or 116 or through a network 106. The computer 102 or 116can be any computer system or computers as described in conjunction withFIG. 6 and FIG. 7. Generally, the computer 102 or 116 can include aprocessor and memory and be able to execute applications on theprocessor. The other devices, such as, IP-enabled phones 104 or 112, mayalso have a processor memory and execute applications. The other devices104 or 112 may also be a computing system or computer as described inconjunction with FIG. 6 and FIG. 7. Computer 102 and communicationdevice 104 can be associated with a first user. Communication device 3(e.g., IP-enabled phone 112) and computer 116 may be associated with asecond user. In embodiments, the system 100 includes more devices thanthose shown in FIG. 1.

The network 106 can be any network or communication system as describedin conjunction with FIG. 6 and FIG. 7. Generally, the network 106 can bea local area network (LAN), a wide area network (WAN), a wireless LAN, awireless WAN, the Internet, etc. that receives and transmits messages ordata between devices, such as, computer 102 and IP-enabled phone 104.The network 106 may communicate in any format or protocol known in theart, such as, transmission control protocol/internet protocol (TCP/IP),802.11g, 802.11n, Bluetooth, or other formats or protocols.

The system 100 can also include one or more databases or be able tocommunicate with one or more databases or data sources. For example, apersonnel/customer database 108 may store information about personnelwithin an organization or customers that are associated with anorganization. The personnel/customer database 108 can be any type ofdatabases described in conjunction with FIG. 6 and FIG. 7 and stored onany type of tangible computer readable medium. The devices, such as thecomputer 102 or 116, can communicate with the personnel/customerdatabase 108 through the network 106.

Other databases may be external to the organization, such as externalsource(s)/database(s) 110. The external source(s)/database(s) 110 can beany database, as described in conjunction with FIG. 6 and FIG. 7, or canbe a source of information that is external to the organization. Forexample, the external source(s)/database(s) 110 can be informationextracted from social media sources, for example, Facebook, Plaxo,LinkedIn, Spoke, Twitter, other blogs, other micro blogs, other videoblogs, or other such sources of information. The devices, such ascomputer 102, can communicate with the external source(s)/database(s)110 through the network 106 and one or more other networks that may notbe shown in FIG. 1. In embodiments, the external source(s)/database(s)110 may also represent an email system where one or more emails,associated with either person involved with a communication, may beretrieved. For example, from identity information retrieved or receivedfor the communication, a system can retrieve emails from the past threedays that include the parties as addressees. The externalsource(s)/database(s) 110 can be other sources of information that alsomay provide data after receiving identity information.

The system 100 can also include a communication application 114 and/or118. The communication application 114 and/or 118 can be a softwaremodule executed on at least one device in the system 100. For example,device 1 102 is executing the communication application 114 in theembodiment shown in FIG. 1. It should be noted that the communicationapplication 114 and/or 118 may be executed on a server or other computersystem that communicates with both device 1 102 and device 4 116. Thecommunication application 114 and/or 118 is operable to communicate withthe IP-enabled phones 104 or 112 (or other communication devices andphones) through other communication media, for example, email, textmessaging, SIP messaging, XML messaging, etc. Further, the communicationapplication 114 and/or 118 can provide information that initiates thetransfer of alias information. Data transfers between devices 102 and/or104 can occur using XML, SIP messaging, or other communications systemsto import content from one device to another device. Further, thecommunication application can send information through traditional DCPphones.

Embodiment of a software system 200 that can send and receive aliasinformation is shown in FIG. 2. The components shown in the softwaresystem 200 can execute on one or more of the devices, such as, thecomputer 102 and/or 112 and/or the IP enabled telephone 104 and/or 116.In other embodiments, the software can be executed in another system,such as a server, not shown in FIG. 1 or in a cloud computingenvironment, also not shown in FIG. 1. Thus, the software system 200 canbe a software service or other program that is operable to push aliasinformation. The embodiments explained hereinafter will be explained asthe software system 200 is executing in an IP-enabled phone 104, but theembodiments are not limited to this configuration.

The software system 200 can include a communication interface 204. Thecommunication interface 204 can include an application to conduct voicecommunications with another communication device, e.g., device 3 112.Thus, the communication interface is operable to conduct a phone call.In further embodiments, the communication interface 204 can also receivealias information from other devices 112. Thus, the communicationinterface 204 may send and receive data through SIP messaging, XMLmessaging, or other communication protocol. The alias information can bepassed to the data application 214.

The data application 214 includes modules to push and receive aliasinformation. To assemble or import alias information, the data retrievalengine 202 can use a data structure that can be created in a user datadatabase 208. Using the information received from the communicationinterface 204, the data retrieval engine 202 can also retrieve a datastructure from the user data database 208. The data retrieval engine 202can then retrieve data for the data structure. In some instances, thecopied information is in a proprietary format. As such, the dataretrieval engine 202 may include a translator 210 that can translate thedata from the proprietary format into another format, for example,extensible markup language (XML). Thus, the data incorporated into thedata structure is in a general format and may be more easily translatedor provided to other programs.

The data retrieval engine 202 can also communicate with one or moreother sources of data 108 and/or 110 to retrieve data associated withthe alias information. For example, the data retrieval engine 202 cancommunicate with a personnel/customer database 108 to retrieve moreinformation for the data structure. This information can be informationassociated with customer activity associated with the organizationassociated with the software system 200. The information may also beinformation about an employee or other person associated with theorganization.

In other embodiments, the data retrieval engine 202 can interface,through a network 106 and possibly one or more other networks, to theexternal source(s)/database(s) 110 to retrieve information for the datastructure. For example, the data retrieval engine 202 can retrieveinformation from social media sites, such as, Facebook, Plaxo,LinkedIn®, etc. The other information is retrieved from the externalsources and included into the data structure. Examples of the aliasinformation sent to the software system 200 and the informationretrieved from the social media sites is described in conjunction withFIG. 3.

After completing the retrieval of data, the data retrieval engine 202may then provide the data from the data structure into the userinterface 212 or store the information in the user data database 208.The software system 200 can include a user interface 212. The userinterface 212 can include a display for the IP-enabled phone 104. Theuser interface 212 can receive selections or inputs from user interfacedevices, such as a mouse, a keyboard, a touch screens, or other inputdevices. The user interface selections are received by the userinterface 212 and provided to the data application 214. Further, theuser interface 212 can display information associated with the alias ofa caller.

The data application 214 also includes a data push engine 206. The datapush engine 206 is operable to assemble alias information and push thealias information to another communication device. To assemble the aliasinformation, the data push engine 206 can use a data structure that canbe created in a user data database 208. A request may be received fromanother device 112 for alias information. In response to the request,the data push engine 206 can retrieve the data structure from the userdata database 208. An embodiment of the data structure is described inconjunction with FIG. 3.

The data push engine 206 can retrieve alias data for the data structure.Thus, the data push engine 206 can communicate with one or more othersources of data 108, 208, and/or 216 to retrieve data associated withthe alias information. For example, the data push engine 206 cancommunicate with a user data database 208 to retrieve one or morealiases associated with the user. This alias information can beassociated with the user identified in the communication.

In other embodiments, the data push engine 206 can interface, through anetwork 106 and possibly one or more other networks, to the externalsource(s)/database(s) 110 to retrieve alias information for the datastructure. For example, the data push engine 206 can retrieve aliasinformation from social media sites, such as, Facebook, Plaxo,LinkedIn®, etc. The alias information is retrieved from the externalsources and included into the data structure. Examples of the aliasinformation sent to the software system 200 and the informationretrieved from the social media sites is described in conjunction withFIG. 3.

After completing the retrieval of alias information, the data pushengine 206 may push the data structure to the other user. Inembodiments, the alias information is sent to the other communicationdevice via media associated with the phone call (e.g., a SIP interactionformed to facilitate the phone call). In other embodiments, the datapush engine 206 pushes the alias information to another device, e.g.,the computer 116. Thus, the data push engine 206 may access informationabout the distant caller to determine an email or other address for thedistant caller and associated with the computer 116. Then, the data pushengine 206 pushes the alias information to the computer 116. Inembodiments, the data push engine 206 also pushes presence informationto the computer 116

The data push engine 206 may also be operable to enforce userpreferences regarding the information about aliases provided orobtained. Thus, the data push engine 206 may communicate with a userpreferences database 216, which may be any type of database described inconjunction with FIGS. 6 and 7. The user preferences database 216 may beoperable to store user preferences for about how alias information ispushed and what information can be obtained from the social media sites.The user may set these preferences before sharing alias information.Typical constraints on sharing alias information can restrict thepushing of a certain type of alias to a certain group of users (E.g.,push a portion of the aliases to business associated, push anotherportion of the aliases to friends and family, do not ever push somealiases, etc.). Further, the preferences may restrict the kind ofinformation gleaned from the social media sites (e.g., vacation picturesare not sent to business associates, work posts are not sent to friends,etc.). In embodiments, the degree of separation for a social media site(e.g., LinkedIn) can dictate how much information is provided. Forexample, if there is only a single degree of separation, all theavailable information is provided. However, if there are more degrees ofseparation, then less information is provided. At some level of degreeof separation, no information may be provided.

Embodiments of data structures that may be included in the user datadatabase 208 are shown in FIG. 3. The data structures can include one ormore segments or fields, which store data in an organized fashion. Thedata structures may be associated with one or more types of databasesincluding flat file databases, object orientated databases, relationaldatabases, etc. Further, the data structures may be components ofdatabases as described in conjunction with FIGS. 6 and 7.

An alias data structure 302 can include identifications for one or moresources of social media (referred to as social media sites). Forexample, the alias data structure 302 can include one or more fields 304a, 304 b, 304 c, 304 d, 304 e, 304 f, etc. that include an identifierfor a social media site. The social media identifier 304 can be the nameof the social media site (e.g., Twitter), an Internet address for thesocial media site, the uniform resource locator, a globally uniqueidentifier, or some other identifier. The social media identifier 304may provide information to another party as to what information may beobtained from the social media site.

Associated with each social media identifier 304 is one or more aliasesassociated with the user for the identified social media site. The aliascan be a nickname, name, or other identifier used by the person on theparticular social media site. The user may employ two or more aliasesfor a single social media site and, thus, there may be more than oneentry 304 or alias 308 for each alias used. Data structure 302 can bepushed by data push engine 206 to another communication device.

After being received by the distant communication device, the alias 308and social media identifier 304 point to one or more of the datastructures 310 a, 310 b, 310 c, etc. There may be more or social mediasites with alias information than those shown in FIG. 3, as representedby ellipses 306. Also, there may be as many available data structures310 as there are social media site and alias information pairings. Theremay be more or fewer data structures 310, as represented by ellipses312.

The data structures 310 may include one or more data fields 314 and/or316. The data fields 314 and/or 316 for each data structure 310 can beparticular to the type of social media application. Further, each datastructure 310 may have more or fewer fields than those shown in datastructure 310 a, as represented by ellipses 318. Also, each datastructure 310 can include a set of metadata that describes what data maybe retrieved as dictated by the user preferences within that datastructure 310. The metadata can describe how the data should be copiedfrom the social media site, may describe how obtain data from the socialmedia site, how to logon or access the social media site, may describeother external sources for the data (e.g., Facebook and Twitter,governmental records, etc.), when the data may be retrieved, or otherinformation that enables the importation of content associated with thealias.

The metadata may be created automatically through intelligence agentsthat are able to interpret the function of social media applications ormay be entered manually through user input into the user preferencesdatabase 216. As such, the user can create new preferences based ondifferent requirements or different social media sites. The creation ofthe data structure 310 may be automated by the data retrieval engine 202traversing or reviewing data within the social media site and creatingdata structures 310 that will be operable to store and/or import thatcontent. The data retrieved from the social media sites can include oneor more of, but is not limited to, names for the user, addresses for theuser, phone numbers, email address, text messaging addresses, likes anddislikes, consumer activity, travel habits, an identity of a friend, anoccupation, an income, or a spouse's identity, etc.

An embodiment of a method 400 for importing content as shown in FIG. 4.The embodiment shown in FIG. 4 is from the view of a called party.Generally, the method 400 begins with a start operation 402 andterminates with an end operation 418. While a general order for thesteps of the method 400 are shown in FIG. 4, the method 400 can includemore or fewer steps or arrange the order of the steps differently thanthose shown in FIG. 4. The method 400 can be executed as a set ofcomputer-executable instructions executed by a computer system andencoded or stored on a computer readable medium. Hereinafter, the method400 shall be explained with reference to the systems, components,modules, data structures, user interfaces, etc. described in conjunctionwith FIGS. 1-3.

A communication interface 204 receives a communication from anotherdevice 112, in step 404. The communications interface 204 can be asshown in FIG. 2. Thus, the communication interface 204, as part of anIP-enabled phone 104, may receive a phone call from another IP-enabledphone 112. The phone call can include the provision of the caller's nameand other information (as is received with caller identifier). Thecommunication interface 204 may establish a SIP communication linkbetween the two IP-enabled phones 104 and 112. Thus, information may beexchanged over the SIP communication link.

In response to establishing the communication, the data retrieval engine202 optionally can request alias information from the IP-enabled phone112, in step 406. For example, a the data retrieval engine 202 candirect the communications interface 204 to send a SIP message to theIP-enabled phone 112 for alias information. The request, in embodiments,may include a data structure 302 including metadata that providesinformation to the other communication device 112 to provide aliasinformation.

The other communication device 112 can gather the alias information,store the alias information into the data structure 302, and send thedata structure 302 to the IP-enabled phone 104. The IP-enabled phone 104may then receive the alias information, in step 408. The aliasinformation may be included in the data structure 302. With the aliasinformation, the data retrieval engine 202 can create a data structure310 for the caller associated with the alias information, in step 410.The data structure 310 may be created with fields 314 and/or 316 withrespect to the social media sites 304, alias information 308, andmetadata provided with the data structure 302. Thus, the data structure310 can be constructed based on the information that may be obtainedfrom the social media sites provided in field 304. A new data structurecan be created for each new caller.

The data retrieval engine 202 can then use the social media siteinformation in field 304 and the alias information in field 308 toobtain data associated with the caller, in step 412. Thus, the dataretrieval engine 202 accesses one or more social media sites and obtainsinformation associated with the aliases. In some instances, the dataretrieval engine 202 friends or subscribes to information associatedwith the alias. Some social media sites will require the user to acceptthe subscription. In other instances, the data retrieval engine 202searches and copies data from the social media sites without asubscription.

The data retrieval engine 202 may then copy data from the social mediasites. After copying data from a social media site, the data retrievalengine 202 can then determine whether there are more aliases for thatsite or other sites to communicate with to copy data, in step 414. Ifthere are more sites or other aliases at the current site from which tocopy data, step 414 proceeds “YES” back to step 412. If there are noother aliases or sites from which to copy data, step 414 proceeds “NO”to step 416. In step 416, the data retrieval engine 202 stores theretrieved data into the data structure 310. IN embodiments, a translator210 may translate the data from a proprietary format into a generalformat for storage in the data structure 310. After the data is storedin the data structure 310, the data structure 310 may be stored in theuser data database 208.

An embodiment of a method 500 for copying data into a data structure forimporting content is shown in FIG. 5. Generally, the method 500 beginswith a start operation 502 and terminates with an end operation 514.While a general order for the steps of the method 500 are shown in FIG.5, the method 500 can include more or fewer steps or arrange the orderof the steps differently than those shown in FIG. 5. The method 500 canbe executed as a set of computer-executable instructions executed by acomputer system and encoded or stored on a computer readable medium.Hereinafter, the method 500 shall be explained with reference to thesystems, components, modules, data structures, user interfaces, etc.described in conjunction with FIGS. 1-3.

A communication interface 204 sends a communication for another device112, in step 504. The communications interface 204 can be as shown inFIG. 2. Thus, the communication interface 204, as part of an IP-enabledphone 104, may initiate and send a phone call to another IP-enabledphone 112. The phone call can include the provision of the caller's nameand other information (as is received with caller identifier). Thecommunication interface 204 may establish a SIP communication linkbetween the two IP-enabled phones 104 and 112. Thus, information may beexchanged over the SIP communication link.

In response to establishing the communication, the data push engine 206optionally can receive a request for alias information from theIP-enabled phone 112, in step 506. For example, the data push engine 206can receive, from the communications interface 204, a SIP message toprovide the IP-enabled phone 112 alias information. The request, inembodiments, may include a data structure 302 including metadata thatprovides information to the communication device 104 to provide aliasinformation.

The data push engine 206 of the communication device 104 can gather thealias information, in step 508. For example, the data push engine 206can communicate with the user data database 208 to retrieve aliasinformation. The alias information may be provided by the user or beautomatically stored when the user communicates with a social mediasite. The data push engine 206 may then create a data structure 302, instep 510. The data structure 302 can store the alias information and maybe modified depending on the alias information available. As such, thenumber of fields or data to be included can change based on the aliasinformation. The alias information may then be stored in the datastructure 302. After storing the available alias information, the datapush engine 206 can direct the communications interface 204 to send thedata structure 302 to the other communication device 112, in step 512.

In alternative embodiments, the data push engine 206 may send the aliasinformation to another device associated with the caller. The caller mayprovide other information with the request for alias information or mayprovide other information automatically in establishing the phone call.The other information can include an email address, text messageaddress, or other communication address. In embodiments, the otherinformation can direct the alias information to the computer 116associated with the communication device 112. As such, the aliasinformation can be sent to the computer 116 where the information can beused to retrieve information about the caller. In still otherembodiments, a server receives the alias information for both parties inthe call and retrieves information for both parties in the call.

FIG. 6 illustrates a block diagram of a computing environment 600 thatmay function as system or environment for the embodiments describedherein. The system 600 includes one or more user computers 605, 610, and615. The user computers 605, 610, and 615 may be general purposepersonal computers (including, merely by way of example, personalcomputers and/or laptop computers running various versions of MicrosoftCorp.'s Windows™ and/or Apple Corp.'s Macintosh™ operating systems)and/or workstation computers running any of a variety ofcommercially-available UNIX™ or UNIX-like operating systems. These usercomputers 605, 610, 615 may also have any of a variety of applications,including for example, database client and/or server applications, andweb browser applications. Alternatively, the user computers 605, 610,and 615 may be any other electronic device, such as a thin-clientcomputer, Internet-enabled mobile telephone, and/or personal digitalassistant, capable of communicating via a network (e.g., the network 620described below) and/or displaying and navigating web pages or othertypes of electronic documents. Although the exemplary system 600 isshown with three user computers, any number of user computers may besupported.

System 600 further includes a network 620. The network 620 can be anytype of network familiar to those skilled in the art that can supportdata communications using any of a variety of commercially-availableprotocols, including, without limitation, TCP/IP, SNA, IPX, AppleTalk,and the like. Merely by way of example, the network 620 maybe a localarea network (“LAN”), such as an Ethernet network, a Token-Ring networkand/or the like; a wide-area network; a virtual network, includingwithout limitation a virtual private network (“VPN”); the Internet; anintranet; an extranet; a public switched telephone network (“PSTN”); aninfra-red network; a wireless network (e.g., a network operating underany of the IEEE 802.11 suite of protocols, the Bluetooth™ protocol knownin the art, and/or any other wireless protocol); and/or any combinationof these and/or other networks.

The system 600 may also include one or more server computers 625, 630.One server may be a web server 625, which may be used to processrequests for web pages or other electronic documents from user computers605, 610, and 615. The web server can be running an operating systemincluding any of those discussed above, as well as anycommercially-available server operating systems. The web server 625 canalso run a variety of server applications, including HTTP servers, FTPservers, CGI servers, database servers, Java servers, and the like. Insome instances, the web server 625 may publish operations availableoperations as one or more web services.

The system 600 may also include one or more file and or/applicationservers 630, which can, in addition to an operating system, include oneor more applications accessible by a client running on one or more ofthe user computers 605, 610, 615. The server(s) 630 may be one or moregeneral purpose computers capable of executing programs or scripts inresponse to the user computers 605, 610 and 615. As one example, theserver may execute one or more web applications. The web application maybe implemented as one or more scripts or programs written in anyprogramming language, such as Java™, C, C#™ or C++, and/or any scriptinglanguage, such as Perl, Python, or TCL, as well as combinations of anyprogramming/scripting languages. The application server(s) 630 may alsoinclude database servers, including without limitation thosecommercially available from Oracle, Microsoft, Sybase™, IBM™ and thelike, which can process requests from database clients running on a usercomputer 605.

The web pages created by the web application server 630 may be forwardedto a user computer 605 via a web server 625. Similarly, the web server625 may be able to receive web page requests, web services invocations,and/or input data from a user computer 605 and can forward the web pagerequests and/or input data to the web application server 630. In furtherembodiments, the server 630 may function as a file server. Although forease of description, FIG. 5 illustrates a separate web server 625 andfile/application server 630, those skilled in the art will recognizethat the functions described with respect to servers 625, 630 may beperformed by a single server and/or a plurality of specialized servers,depending on implementation-specific needs and parameters. The computersystems 605, 610, and 615, file server 625 and/or application server 630may function as servers or other systems described herein.

The system 600 may also include a database 635. The database 635 mayreside in a variety of locations. By way of example, database 635 mayreside on a storage medium local to (and/or resident in) one or more ofthe computers 605, 610, 615, 625, 630. Alternatively, it may be remotefrom any or all of the computers 605, 610, 615, 625, 630, and incommunication (e.g., via the network 620) with one or more of these. Ina particular set of embodiments, the database 635 may reside in astorage-area network (“SAN”) familiar to those skilled in the art.Similarly, any necessary files for performing the functions attributedto the computers 605, 610, 615, 625, 630 may be stored locally on therespective computer and/or remotely, as appropriate. In one set ofembodiments, the database 635 may be a relational database, such asOracle 10i™, that is adapted to store, update, and retrieve data inresponse to SQL-formatted commands. Database 635 may be the same orsimilar to the database used herein.

FIG. 7 illustrates one embodiment of a computer system 700 upon whichservers or other systems described herein may be deployed or executed.The computer system 700 is shown comprising hardware elements that maybe electrically coupled via a bus 755. The hardware elements may includeone or more central processing units (CPUs) 705; one or more inputdevices 710 (e.g., a mouse, a keyboard, etc.); and one or more outputdevices 715 (e.g., a display device, a printer, etc.). The computersystem 700 may also include one or more storage device 720. By way ofexample, storage device(s) 720 may be disk drives, optical storagedevices, solid-state storage device such as a random access memory(“RAM”) and/or a read-only memory (“ROM”), which can be programmable,flash-updateable and/or the like.

The computer system 700 may additionally include a computer-readablestorage media reader 725; a communications system 730 (e.g., a modem, anetwork card (wireless or wired), an infra-red communication device,etc.); and working memory 740, which may include RAM and ROM devices asdescribed above. In some embodiments, the computer system 700 may alsoinclude a processing acceleration unit 735, which can include a DSP, aspecial-purpose processor and/or the like.

The computer-readable storage media reader 725 can further be connectedto a computer-readable storage medium, together (and, optionally, incombination with storage device(s) 720) comprehensively representingremote, local, fixed, and/or removable storage devices plus storagemedia for temporarily and/or more permanently containingcomputer-readable information. The communications system 730 may permitdata to be exchanged with the network 720 and/or any other computerdescribed above with respect to the system 700. Moreover, as disclosedherein, the term “storage medium” may represent one or more devices forstoring data, including read only memory (ROM), random access memory(RAM), magnetic RAM, core memory, magnetic disk storage mediums, opticalstorage mediums, flash memory devices and/or other machine readablemediums for storing information.

The computer system 700 may also comprise software elements, shown asbeing currently located within a working memory 740, including anoperating system 745 and/or other code 750, such as program codeimplementing the servers or devices described herein. It should beappreciated that alternate embodiments of a computer system 700 may havenumerous variations from that described above. For example, customizedhardware might also be used and/or particular elements might beimplemented in hardware, software (including portable software, such asapplets), or both. Further, connection to other computing devices suchas network input/output devices may be employed.

In the foregoing description, for the purposes of illustration, methodswere described in a particular order. It should be appreciated that inalternate embodiments, the methods may be performed in a different orderthan that described. It should also be appreciated that the methodsdescribed above may be performed by hardware components or may beembodied in sequences of machine-executable instructions, which may beused to cause a machine, such as a general-purpose or special-purposeprocessor or logic circuits programmed with the instructions to performthe methods. These machine-executable instructions may be stored on oneor more machine readable mediums, such as CD-ROMs or other types ofoptical disks, floppy diskettes, ROMs, RAMs, EPROMs, EEPROMs, magneticor optical cards, flash memory, or other types of machine-readablemediums suitable for storing electronic instructions. Alternatively, themethods may be performed by a combination of hardware and software.

Specific details were given in the description to provide a thoroughunderstanding of the embodiments. However, it will be understood by oneof ordinary skill in the art that the embodiments may be practicedwithout these specific details. For example, circuits may be shown inblock diagrams in order not to obscure the embodiments in unnecessarydetail. In other instances, well-known circuits, processes, algorithms,structures, and techniques may be shown without unnecessary detail inorder to avoid obscuring the embodiments.

Also, it is noted that the embodiments were described as a process whichis depicted as a flowchart, a flow diagram, a data flow diagram, astructure diagram, or a block diagram. Although a flowchart may describethe operations as a sequential process, many of the operations can beperformed in parallel or concurrently. In addition, the order of theoperations may be re-arranged. A process is terminated when itsoperations are completed, but could have additional steps not includedin the figure. A process may correspond to a method, a function, aprocedure, a subroutine, a subprogram, etc. When a process correspondsto a function, its termination corresponds to a return of the functionto the calling function or the main function.

Furthermore, embodiments may be implemented by hardware, software,firmware, middleware, microcode, hardware description languages, or anycombination thereof. When implemented in software, firmware, middlewareor microcode, the program code or code segments to perform the necessarytasks may be stored in a machine readable medium such as storage medium.A processor(s) may perform the necessary tasks. A code segment mayrepresent a procedure, a function, a subprogram, a program, a routine, asubroutine, a module, a software package, a class, or any combination ofinstructions, data structures, or program statements. A code segment maybe coupled to another code segment or a hardware circuit by passingand/or receiving information, data, arguments, parameters, or memorycontents. Information, arguments, parameters, data, etc. may be passed,forwarded, or transmitted via any suitable means including memorysharing, message passing, token passing, network transmission, etc.

While illustrative embodiments have been described in detail herein, itis to be understood that the inventive concepts may be otherwisevariously embodied and employed, and that the appended claims areintended to be construed to include such variations, except as limitedby the prior art.

What is claimed is:
 1. A method for pushing identity information,comprising: receiving, by a first communication device, a communicationfrom a second communication device; the first communication devicereceiving alias information from the second communication device of asecond user, wherein the alias information comprises a first and secondof alias of a second user on a social media network; with the aliasinformation, the first communication device retrieving data associatedwith the second user from the social media network; and receiving apreference from the second communication device, wherein the preferencecontains information to restrict access to a kind of data associatedwith the second user that is retrieved from the social media network bya first user of the first communication device.
 2. The method as definedin claim 1, further comprising, in response to receiving thecommunication, the first communication device requesting the aliasinformation.
 3. The method as defined in claim 2, further comprising, inresponse to receiving the communication, creating a data structure forthe alias information and sending the data structure with the requestfor the alias information.
 4. The method as defined in claim 2, furthercomprising: creating a data structure for the alias information; sendingthe data structure with the request for the alias information; andstoring the alias information in the data structure.
 5. The method asdefined in claim 4, further comprising storing data associated withalias information in the data structure.
 6. The method as defined inclam 1, wherein restricting access to the kind of data associated withthe second user that is retrieved from the social media network by theuser of the first communication device is based on a degree ofseparation between the first user and the second user.
 7. The method asdefined in claim 1, wherein restricting access to the kind of dataassociated with the second user that is retrieved from the social medianetwork by the first user of the first communication device is based onwhether the second user is a business associate or friend of the firstuser.
 8. The method as defined in claim 1, wherein the alias informationfurther comprises a third alias of the first user on a second socialmedia network.
 9. The method as defined in claim 8, further comprisingrestricting out the third alias of the first user on the second socialmedia network based on the identity of the second user.
 10. The methodas defined in claim 1, further comprising pushing the alias informationfrom the second communication device, wherein the second alias of thesecond user on the social media network has been restricted out of thepushed alias information based on the identity of the first user.
 11. Acommunication device comprising: a memory; a processor in communicationwith the memory, the processor operable to execute computer-executableinstructions, wherein the computer executable instructions cause theprocessor to execute two or more modules, the two or more modulescomprising: a communication interface operable to send a communicationto a second user of a second communication device; a data push engineoperable to: receive a request for alias information from thecommunication interface received in response to the communication withthe second communication device; retrieve alias information for thefirst user of the communication device, wherein the alias informationcomprises a first and second of alias of the first user on a firstsocial media network; push the alias information to the second user ofthe second communication device; and push a preference to the seconduser of the second communication device, wherein the preference containsinformation to restrict access to a kind of data associated with thefirst user that is retrieved from the first social media network by thesecond user of the second communication device.
 12. The communicationdevice as defined in claim 11, wherein the data push engine is furtheroperable to: receive identity information for the second user; retrievea communication address for the second user; and push the aliasinformation to a third communication device associated with thecommunication address.
 13. The communication device as defined in claim11, wherein the two or more modules further comprising a data retrievalengine operable to: in response to the sent communication, requestsecond alias information, associated with the second user, from thesecond communication device; receive the second alias information fromthe communication interface, wherein the second alias informationidentifies the second user of the second communication device on asecond social media network; and with the second alias information,retrieve data associated with the second user from the second socialmedia network.
 14. The communication device as defined in claim 13, thedata retrieval engine further operable to: in response to the sentcommunication, create a data structure for the second alias information;and send the data structure to the second communication device.
 15. Thecommunication device as defined in claim 14, wherein the data structureincludes: a first field operable to store an identity of a social mediasite; and a second field operable to store an alias associated with thesecond user for the social media site.
 16. The communication device asdefined in claim 15, the data retrieval engine further operable to:create a second data structure; and store the data associated with thesecond user in the second data structure.
 17. The communication deviceas defined in claim 16, wherein the data associated with the second userincludes one or more of a name, an address, a phone number, an emailaddress, a text messaging address, a like, a dislike, consumer activity,a travel habit, an identity of a friend, an occupation, an income, or aspouse's identity.
 18. A computer program product including computerexecutable instructions stored onto a non-transitory computer readablemedium which, when executed by a processor of a first IP-enabled phone,causes the processor to perform a method for pushing identityinformation, the instructions comprising: instructions to send acommunication to a second IP-enabled phone, wherein the communication isbetween a first user of the first IP-enabled phone and a second user ofthe second IP-enabled phone; instructions to receive a request for aliasinformation from the second IP-enabled phone, wherein the aliasinformation identifies the first user on two or more social medianetworks; instructions to retrieve alias information for the first user;instructions to store the alias information in a first data structure,wherein the first data structure includes: a first field operable tostore a first identity of a first social media site, a second fieldoperable to store a first alias associated with the first user for thefirst social media site, a third field operable to store a secondidentity of a second social media site, a fourth field operable to storea second alias associated with the first user for the second socialmedia site, and a fifth field operable to store a third alias associatedwith the first user for the first social media site; instructions topush the first data structure with the alias information to the secondIP-enabled phone; and instructions to push a preference to the secondIP-enabled phone, wherein the preference is contains information torestrict a kind of data associated with the first user that is retrievedfrom the two or more social media networks by the second user of thesecond communication device.
 19. The computer program product as definedin claim 18, further comprising: instructions to determine an emailaddress for the second user; and instructions to push the first datastructure with the alias information to the email address.
 20. Thecomputer program product as defined in claim 19, further comprisinginstructions to apply a user preference to a retrieval of dataassociated with the first user from the two or more social media sites,wherein the user preference limits the data that is retrieved from thetwo or more social media sites; and instructions to send the userpreference with the first data structure to be applied by the secondIP-enable phone.